查看原文
其他

Keil系列教程10_文件类型及相关描述

strongerHuang 嵌入式专栏 2021-01-31

置顶/星标公众,不错过每一条消息!


    本教程由原创作者strongerHuang于2018年11月更新发布。

标签:Keil、 MDK-ARM、 µVision

版权所有:禁止商用

申明:该文档仅供个人学习使用,转载请公众号联系作者授权。


1写在前面

1.你在提交项目、打包保存项目时,你会删掉不必要的文件吗?


2.你知道这些uvoptx、uvprojx、map、dep......是什么文件吗?



现象or疑问:

1.购买一块开发板,厂家提供的源代码例程没有几个,但文件却有几百兆。

2.百度网盘下载一个别人提供的代码压缩包,几十兆。

3.打开别人下载的源代码工程,各种类型文件混杂在一起。

4.有些人提供的源代码没有dep文件,这个文件可以删除吗? 删除了会有什么影响?


其实有许多文件都是编译产生的中间文件,我习惯放一个双击删除“编译产生文件”.bat”来管理工程。即每次需要保存,或提交工程,会双击该文件,删除不需要的中间文件。


当你看完本文,理解这些文件类型的含义,你就不会有上面这些烦恼了。(本文内容可参考Keil帮助文档“File Types”文件类型章节)


2

Keil文件类型概述

Keil中用到的文件类型很多,大概有五、六十种。下面会重点讲述常用的文件类型,一些不重要的,或者不常见的只简单概述。


Keil文件可以分为7类:

1、Project Files工程类型文件;

2、Source Files源代码类型文件;

3、Listing Files链接类型文件;

4、Object and HEX Files目标和Hex类型文件;

5、Build Files编译类型文件;

6、Debugger Files调试类型文件;

7、Other Files其他类型文件;


3

Project Files工程类型文件

工程类型文件是比较重要的,特别是工作空间、 工程文件、工程选项配置这三种文件不能删除。项目界面布局文件可以删除。


3.1 工作空间文件

(这类文件不能删除)

*.uvmpw:µVision Project file for Multiple Projects多工程文件,也就是我们说的工作空间文件。


3.2 工程文件

(这类文件不能删除)

*.uvprojx:µVision5工程文件


*.uvproj:µVision4工程文件


*.uv2:µVision3工程文件


3.3 工程选项配置文件

(这类文件不能删除)

*.uvoptx:µVision5工程选项配置文件


*.uvopt:µVision4工程选项配置文件


3.4 项目界面布局文件

(这类文件可以删除)

*.uvguix[.user-name]:µVision5项目界面布局文件。删除之后,重新打开工程,界面布局会恢复到默认布局。如Demo.uvguix.Administrator。


*.uvguix[.user-name]:µVision4项目界面布局文件。


4

Source Files源代码类型文件

这一类文件相信大家都熟悉,简述一下。


*.c:C源文件


*.h:C头文件


*.cpp:C++源文件


*.s:汇编源文件


*.a51:汇编源文件


*.a66:汇编源文件


*.inc:汇编头文件


*.src:C编译器生成的其他源文件


5

Listing Files链接类型文件

这一类文件属于中间文件,一般在编译过程中产生。可以在工程目标选项中配置对应的链接文件。Project -> Options for Target -> Listing,如下图:


*.map:存储镜像文件

这个文件比较重要,我会在后面专门讲述一篇map相关文章。


*.i:C预处理器输出文件


*.scr:链接器分散加载器文件


*.lst:C编译器或汇编器生成的文件


*.m51:同样也是map文件


*.m66:同样也是map文件


*.htm:链接器的列表文件


6

Object and HEX Files目标和Hex类型文件

这一类文件同样属于中间文件,一般在编译过程中产生。但这类文件比较重要,调试信息、预览信息、可执行文件等都在这里面。


Project -> Options for Target -> Output,如图:


*.hex:可执行文件


*.axf:包含调试信息的程序文件

有时候我们调试出错,可能是axf没有文件。


*.d:编译生成的依赖文件

一般一个.c文件对应一个.d文件。


*.o:也是目标的依赖文件

重定位定址的依赖文件。


*.lib:库文件

生成的库就在这里。


*.elf:ELF/DWARF链接的文件


*.crf:浏览信息文件

使用Go to Definition Of 功能,就需要有这类文件。


7

Build Debugger编译调试文件

编译和调试,其实是两类不同文件,由于比较少,综合在一起写。


*.bat:批处理文件


*._IA, *.__I, *._II, *.SCR:工具调用文件


*.ini:于初始化源码文件


8

Other Files其他类型文件

这类文件比较多,但使用较少,简单列几个吧。


*.pack:软件(支持)包文件


*.sct:链接控制文件


*.lnp:连接器传递命令文件


*.dep:目标编译依赖文件


*.cdb:µVision设备数据库文件


9

说明

1.该文档仅供个人学习使用,版权所有,禁止商用。


2.本文由我一个人编辑并整理,难免存在一些错误。


3.本文收录于公众号「嵌入式专栏」,关注微信公众号回复【Keil系列教程】即可查看全系列教程。  


10最后

若觉得文章对你有帮助,随手点赞、分享,也是对我莫大的支持和鼓励。


扫描下面二维码、关注公众号,在底部菜单中查看更多精彩内容!



长按识别图中二维码关注

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存